<?php
/**
 * 产品模型
 * 
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 *
 * @author      cmpan
 * @copyright   Copyright (c) 2009-2010 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
class ProductModel extends UE_Model {
    public $table  = 'ue_product';
	public $key    = 'product_id';
	
	public function add($product) {
		// 标题不能为空
		if (strlen($product['product_title']) < 8 || strlen($product['product_title']) > 80) {
	    	$this->setErr('标题长度为4-40个中文字符或8-80个英文字符！');
	    	return false;
	    }
	    
	    empty($product['product_id']) && $product['product_id'] = makeUeid();
	    $product['product_dateline'] = $product['product_modified_time'] = time();
	    // info_desc
	    $product['product_desc'] = trim($product['product_desc']);
	    if (empty($product['product_desc'])) {
	    	$product['product_desc'] = substr(strip_tags($product['product_content']), 0, 200);
	    }
	    
	    if (empty($product['product_sn'])) {
	    	$product['product_sn'] = strtoupper(sprintf('%x', crc32($product['product_id'])));
	    }
	    
	    // 积分
	    if (empty($product['product_score'])) {
	    	$product['product_score'] = (int) $product['product_price'];
	    }
	    if (empty($product['product_slug'])) {
	    	$product['product_slug'] = addslashes(urlencode(stripcslashes($product['product_title'])));
	    }
	    
	    $product['item_url'] = UE_Url::make('product/show/item/'.$product['product_id']);
	    
	    return parent::add($product);
	}
	
	
	public function edit($product) {
		if(!$this->check()) {
			return false;
		}
		
		// 标题不能为空
		if (strlen($product['product_title']) < 8 || strlen($product['product_title']) > 80) {
	    	$this->setErr('标题长度为4-40个中文字符或8-80个英文字符！');
	    	return false;
	    }
	    
	    $product['product_modified_time'] = time();
	    // info_desc
	    $product['product_desc'] = trim($product['product_desc']);
	    if (empty($product['product_desc'])) {
	    	$product['product_desc'] = substr(strip_tags($product['product_content']), 0, 200);
	    }
	    
	    if (empty($product['product_sn'])) {
	    	$product['product_sn'] = strtoupper(sprintf('%x', crc32(uniqid('', true))));
	    }
	    
	    // 积分
	    if (empty($product['product_score'])) {
	    	$product['product_score'] = (int) $product['product_price'];
	    }
		
	    if (empty($product['product_slug'])) {
	    	$product['product_slug'] = addslashes(urlencode(stripcslashes($product['product_title'])));
	    }
	    
	    $product['item_url'] = UE_Url::make('product/show/item/'.$this->id);
		
	    return parent::update($product);
	}
	
	/**
	 * 设置商品状态
	 *
	 * @param int $status 商品状态 1：上架,0：下架（设为草稿）,-1：垃圾（放到垃圾回收站）
	 * @return bool
	 */
	public function setStatus($status) {
		return $this->_db()->query("UPDATE {$this->table} SET product_status='{$status}' WHERE {$this->key} = '{$this->id}'");
	}
	
	/**
	 * 设置排序序号
	 *
	 * @param int $order
	 * @return bool
	 */
	public function setOrder($order) {
		if(!$this->check()) {
			return false;
		}
		
		return UE_DB::factory()->query("UPDATE {$this->table} SET product_order='{$order}' WHERE {$this->key} = '{$this->id}'");
	}
}